home *** CD-ROM | disk | FTP | other *** search
/ More MacCube 6: Multimedia / More MacCube Vol 6 Multimedia.bin / Multimedia / SpinIt.1b1 fat / Making Your Own Objects / Hyper-Octahedron.r < prev    next >
Encoding:
Text File  |  1995-12-09  |  5.4 KB  |  120 lines  |  [TEXT/KAHL]

  1. /*
  2.     Octahedron.r
  3.     
  4.     Commented Rez Compiler source for making a Spin It! 
  5.     document that contains a "Hyper-Octahedron".
  6.     
  7.     by James Jennings
  8. */
  9.  
  10. #include "polytope.r"
  11.  
  12. /* 'Dim0' contains a list of the vertices. */
  13.  
  14. resource 'Dim0' (256, "{3,3,4} Vertices") {
  15.     /* First, there is the radius of the object. This controls
  16.         how the object will fill the window. Make this the biggest distance
  17.         that any of your vertices is from the origin. I've made it pretty large
  18.         because it's better for Spin It! to shrink an object to the window than
  19.         to grow it. It's a 16 bit number, so keep it under 32000. */
  20.     2000,    /* the object's radius */
  21.     {    /* array vertArray: 8 elements */
  22.         /* Each element is one corner of the figure. */
  23.         /*        { x,  y,  z,  t }, */
  24.         /* [0] */ { 2000, 0, 0, 0 },
  25.         /* [1] */ {-2000, 0, 0, 0 },
  26.         /* [2] */ { 0, 2000, 0, 0 },
  27.         /* [3] */ { 0,-2000, 0, 0 },
  28.         /* [4] */ { 0, 0, 2000, 0 },
  29.         /* [5] */ { 0, 0,-2000, 0 },
  30.         /* [6] */ { 0, 0, 0, 2000 },
  31.         /* [7] */ { 0, 0, 0,-2000 }
  32.     }
  33. };
  34.  
  35. /* 'Dim1' contains a list of the edges */
  36. resource 'Dim1' (256, "{3,3,4} Edges") {
  37.     {    /* array edgeArray: 24 elements */
  38.         /* Each edge gives the indices of two vertices. Note
  39.             that the vertices are counted from zero. */
  40.         /* [0] */ { 0, 2 },    /* an edge connecting vertex 0 with vertex 2 */
  41.         /* [1] */ { 0, 3 },
  42.         /* [2] */ { 0, 4 },
  43.         /* [3] */ { 0, 5 },
  44.         /* [4] */ { 0, 6 },
  45.         /* [5] */ { 0, 7 },
  46.         /* [6] */ { 1, 2 },
  47.         /* [7] */ { 1, 3 },
  48.         /* [8] */ { 1, 4 },
  49.         /* [9] */ { 1, 5 },
  50.         /* [10] */ { 1, 6 }, /* an edge connecting vertex 1 with vertex 6 */
  51.         /* [11] */ { 1, 7 },
  52.         /* [12] */ { 2, 4 },
  53.         /* [13] */ { 2, 5 },
  54.         /* [14] */ { 2, 6 },
  55.         /* [15] */ { 2, 7 },
  56.         /* [16] */ { 3, 4 },
  57.         /* [17] */ { 3, 5 },
  58.         /* [18] */ { 3, 6 },
  59.         /* [19] */ { 3, 7 },
  60.         /* [20] */ { 4, 6 },
  61.         /* [21] */ { 4, 7 },
  62.         /* [22] */ { 5, 6 },
  63.         /* [23] */ { 5, 7 }
  64.     }
  65. };
  66.  
  67. /* The text that appears in the Get Info... window. */
  68. /* (No, I didn't write this by hand. It's from a Rez decompiler.) */
  69. data 'TEXT' (256) {
  70.     $"4879 7065 7220 4F63 7461 6865 6472 6F6E"            /* Hyper Octahedron */
  71.     $"0D0D 416C 736F 206B 6E6F 776E 2061 7320"            /* ¬¬Also known as  */
  72.     $"6120 D231 362D 6365 6C6C D32E 0D0D 5468"            /* a “16-cell”.¬¬Th */
  73.     $"6973 2069 7320 6120 6765 6E65 7261 6C69"            /* is is a generali */
  74.     $"7A65 6420 6F63 7461 6865 6472 6F6E 2E20"            /* zed octahedron.  */
  75.     $"596F 7520 6361 6E20 7374 6172 7420 7769"            /* You can start wi */
  76.     $"7468 2061 6E20 6F63 7461 6865 6472 6F6E"            /* th an octahedron */
  77.     $"2074 6861 7420 6861 7320 636F 726E 6572"            /*  that has corner */
  78.     $"7320 6F6E 2074 6865 20B1 7820 6178 6973"            /* s on the ±x axis */
  79.     $"2C20 7468 6520 B179 2061 7869 732C 2061"            /* , the ±y axis, a */
  80.     $"6E64 2074 6865 20B1 7A20 6178 6973 2028"            /* nd the ±z axis ( */
  81.     $"7369 7820 636F 726E 6572 7329 2061 6E64"            /* six corners) and */
  82.     $"2061 6464 2074 776F 206D 6F72 6520 706F"            /*  add two more po */
  83.     $"696E 7473 206F 6E20 7468 6520 B174 2061"            /* ints on the ±t a */
  84.     $"7869 732E 0D0D 4974 2068 6173 3A0D 3820"            /* xis.¬¬It has:¬8  */
  85.     $"7665 7274 6963 6573 0D32 3420 6564 6765"            /* vertices¬24 edge */
  86.     $"730D 3332 2066 6163 6573 2028 7472 6961"            /* s¬32 faces (tria */
  87.     $"6E67 6C65 7329 0D31 3620 6365 6C6C 7320"            /* ngles)¬16 cells  */
  88.     $"2874 6574 7261 6865 6472 6129 0D0D 5363"            /* (tetrahedra)¬¬Sc */
  89.     $"686C 8A66 6C69 2053 796D 626F 6C3A 207B"            /* hläfli Symbol: { */
  90.     $"332C 332C 347D 0D0D 4974 7320 6475 616C"            /* 3,3,4}¬¬Its dual */
  91.     $"2069 7320 7468 6520 7B34 2C33 2C33 7D20"            /*  is the {4,3,3}  */
  92.     $"2822 5465 7373 6572 6163 7422 2C20 206F"            /* ("Tesseract",  o */
  93.     $"7220 2248 7970 6572 6375 6265 2229 0D0D"            /* r "Hypercube")¬¬ */
  94.     $"4974 D573 206F 6E65 206F 6620 7468 6520"            /* It’s one of the  */
  95.     $"7369 7820 506C 6174 6F6E 6963 2048 7970"            /* six Platonic Hyp */
  96.     $"6572 736F 6C69 6473 2E"                             /* ersolids. */
  97. };
  98.  
  99. /* "Style" information for the above text. */
  100. data 'styl' (256) {
  101.     $"000D 0000 0000 0010 000C 0001 0100 0000"            /* .¬.............. */
  102.     $"0000 0000 0000 0000 0011 0008 0006 0001"            /* ................ */
  103.     $"0000 0006 0000 0000 0000 0000 0012 000D"            /* ...............¬ */
  104.     $"000A 0001 0000 000A 0000 0000 0000 0000"            /* ................ */
  105.     $"002C 0008 0006 0001 0000 0006 0000 0000"            /* .,.............. */
  106.     $"0000 0000 002E 000D 000A 0001 0000 000A"            /* .......¬........ */
  107.     $"0000 0000 0000 0000 00E5 0008 0006 0001"            /* ................ */
  108.     $"0000 0006 0000 0000 0000 0000 00E6 000D"            /* ...............¬ */
  109.     $"000A 0001 0000 000A 0000 0000 0000 0000"            /* ................ */
  110.     $"012D 0008 0006 0001 0000 0006 0000 0000"            /* .-.............. */
  111.     $"0000 0000 012E 000D 000A 0001 0000 000A"            /* .......¬........ */
  112.     $"0000 0000 0000 0000 0147 0008 0006 0001"            /* .........G...... */
  113.     $"0000 0006 0000 0000 0000 0000 0148 000D"            /* .............H.¬ */
  114.     $"000A 0001 0000 000A 0000 0000 0000 0000"            /* ................ */
  115.     $"017F 0008 0006 0001 0000 0006 0000 0000"            /* ................ */
  116.     $"0000 0000 0180 000D 000A 0001 0000 000A"            /* .....Ä.¬........ */
  117.     $"0000 0000 0000"                                     /* ...... */
  118. };
  119.  
  120.